package s2.convertor;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by IFT8
 * on 2015/7/16.
 */
public class DateConvertor extends DefaultTypeConverter {

    @Override
    public Object convertValue(Object value, Class toType) {
        System.out.println("-------Value-----------");
        System.out.println(value.getClass().getName());
        System.out.println(((String[]) value)[0]);
        System.out.println("-----------------------");
        //框架得到的是数组 (保证同名数据组可用)

        DateFormat[] dateFormats = {
                new SimpleDateFormat("yyyy-MM-dd"),
                new SimpleDateFormat("yyyy/MM/dd"),
                new SimpleDateFormat("yyyy.MM.dd")
        };
        if (toType == Date.class) {
            //格式到日期 yyyy-MM-dd( yyyy/MM/dd yyyy.MM.dd)----->Date
            String dateStr = ((String[]) value)[0];
            ParseException e = null;
            for (DateFormat dateFormat : dateFormats)
                try {
                    return dateFormat.parse(dateStr);
                } catch (ParseException ex) {
                    e = ex;
                    continue;
                }
            throw new RuntimeException(e);
        }
        if (toType == String.class) {
            //日期到格式 Date----->yyyy-MM-dd
            return dateFormats[0].format(value);
        }
        return super.convertValue(value, toType);
    }
}